//  @ Project : GagalPanen
//  @ File Name : gamemaps.hpp
//  @ Date : 3/9/2011
//  @ Author : 
//
//


#if !defined(_GAMEMAPS_H)
#define _GAMEMAPS_H

#include <fstream>
#include <string>
#include "direction.hpp"
#include "gridmap.hpp"


class GameMaps {
public:

  /* Constructor for new games */
  GameMaps(GameInterface* game);

  /* Constructor for load game */
  GameMaps(GameInterface* game, std::ifstream& is);

  Cell* getCellInFrontOff(Cell* cell, Direction dir);
  GridMap* getField();
  GridMap* getHouse();
  GridMap* getShop();
  GridMap* getMapContaining(Cell* cell);
  void advanceTime();
  void advanceDay();

  virtual void save(std::ofstream& os);

  std::string getRepFromMap(GridMap* map);
  GridMap* getMapFromRep(std::string rep);

protected:
  GameInterface* game_;
private:
  std::vector< GridMap* > maps_;
};

#endif  //_GAMEMAPS_H
